Internet Protocols
đ 27. What are network protocols, and why are they needed?â
Network Protocols āĻšāϞ⧠āĻāĻāĻā§āĻā§āĻ Rules and Standards, āϝāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰ⧠āύā§āĻāĻā§āĻžāϰā§āĻā§āϰ āĻā§āϤāϰ āĻĻāĻŋā§ā§ āĻĻā§āĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏā§āϰ āĻŽāϧā§āϝ⧠āĻā§āĻāĻžāĻŦā§ data āĻĢāϰāĻŽā§āϝāĻžāĻ, āϏā§āύā§āĻĄ āĻāĻŦāĻ āϰāĻŋāϏāĻŋāĻ āĻšāĻŦā§āĨ¤
đ āĻāĻā§āϞ⧠āĻĒā§āϰā§ā§āĻāύ, āĻāĻžāϰāĻŖ āĻĻā§āĻāύ āĻŦā§āϝāĻā§āϤāĻŋ āϝā§āĻŽāύ āĻāĻŋāύā§āύ āĻāĻžāώāĻžā§ āĻāĻĨāĻž āĻŦāϞāϞ⧠āĻā§āĻ āĻāĻžāĻāĻā§ āĻŦā§āĻāϤ⧠āĻĒāĻžāϰ⧠āύāĻž, āϤā§āĻŽāύāĻŋ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰā§āϰ āĻāĻžāώāĻžāĻ āϝāĻĻāĻŋ āĻāĻŋāύā§āύ āĻšā§, āϤāĻŦā§ āϤāĻžāϰāĻž data āĻāĻĻāĻžāύ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§ āύāĻžāĨ¤ protocol āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āϝā§, āϏā§āύā§āĻĄāĻžāϰ āĻ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻāĻā§ā§āĻ āĻāĻāĻ āύāĻŋā§āĻŽ āĻŦāĻž āĻāĻžāώāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻā§āĨ¤
đī¸ What is the role of the IEEE and IETF in defining protocols?â
- IETF (Internet Engineering Task Force): āĻāĻāĻŋ āĻāύā§āĻāĻžāϰāύā§āĻā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āϏāĻĢāĻāĻā§ā§āϝāĻžāϰ āĻāĻŦāĻ āĻĒā§āϰāĻā§āĻāϞā§āϰ āĻŽāĻžāύ āĻāύā§āύā§āύ āĻāϰā§āĨ¤ āϝā§āĻŽāύ: TCP/IP, HTTP, DNS āĻĒā§āϰā§āĻā§āĻāϞā§āϰ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻāĻŦāĻ RFC (Request for Comments) āϤāĻžāϰāĻžāĻ āĻŽā§āύāĻā§āĻāύ āĻāϰā§āĨ¤
- IEEE (Institute of Electrical and Electronics Engineers): āĻāϰāĻž āĻŽā§āϞāϤ āĻšāĻžāϰā§āĻĄāĻā§ā§āϝāĻžāϰ āĻāĻŦāĻ āĻĢāĻŋāĻāĻŋāĻā§āϝāĻžāϞ āϞā§ā§āĻžāϰā§āϰ protocol āĻāĻŦāĻ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āϏā§āĻ āĻāϰā§āĨ¤ āϝā§āĻŽāύ: Wi-Fi āĻāϰ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ (IEEE 802.11) āĻŦāĻž āĻāĻĨāĻžāϰāύā§āĻā§āϰ (Ethernet) āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄāĨ¤
đ How do proprietary protocols differ from open standards?â
- Proprietary Protocols: āĻāĻā§āϞ⧠āĻā§āύ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒā§āϰāϤāĻŋāώā§āĻ āĻžāύ āĻŦāĻž āĻā§āĻŽā§āĻĒāĻžāύāĻŋāϰ āϤā§āϰāĻŋ āĻāϰāĻž āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ protocol, āϝāĻž āĻļā§āϧ⧠āϤāĻžāĻĻā§āϰ āϤā§āϰāĻŋ āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āĻŦāĻž āϏāĻĢāĻāĻā§ā§āϝāĻžāϰā§āĻ āĻāĻžāĻ āĻāϰ⧠(āϝā§āĻŽāύ: Apple āĻāϰ AirPlay āĻŦāĻž Microsoft-āĻāϰ RDP)āĨ¤
- Open Standards: āĻāĻā§āϞ⧠āϏāĻŦāĻžāϰ āĻāύā§āϝ āĻāύā§āĻŽā§āĻā§āϤ (āϝā§āĻŽāύ: HTTP āĻŦāĻž TCP/IP)āĨ¤ āĻŦāĻŋāĻļā§āĻŦā§āϰ āϝ⧠āĻā§āĻ āϤāĻžāĻĻā§āϰ āĻĄāĻŋāĻāĻžāĻāϏ⧠āĻāĻ protocol āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻ āĻāϰ⧠āĻāĻā§ āĻ āύā§āϝā§āϰ āϏāĻžāĻĨā§ āύāĻŋāϰā§āĻŦāĻŋāĻā§āύ⧠āϝā§āĻāĻžāϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
đĄī¸ 28. What is the role of protocols in ensuring data transfer integrity and reliability?â
info āĻŦāĻž data āϝāĻāύ āϤāĻžāϰā§āϰ āĻŦāĻž āĻšāĻžāĻā§āĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻ āĻāĻžā§āĻāĻž āĻĨā§āĻā§ āĻ āύā§āϝ āĻāĻžā§āĻāĻžā§ āϝāĻžā§, āϤāĻāύ āĻĢāĻŋāĻāĻŋāĻā§āϝāĻžāϞ āĻāĻžāϰāĻŖā§ data āĻāϰāĻžāĻĒā§āĻ āĻŦāĻž āύāώā§āĻ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āύā§āĻāĻā§āĻžāϰā§āĻ āĻĒā§āϰāĻā§āĻāϞāĻā§āϞ⧠āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āϝā§, āĻĒāĻžāĻ āĻžāύ⧠data āĻ āĻŋāĻāĻ āĻžāĻāĻŽāϤ⧠āĻāύā§āϤāĻŦā§āϝ⧠āĻĒā§āĻāĻāĻžāĻā§āĻā§ āĻāĻŋ āύāĻž (Reliability) āĻāĻŦāĻ āĻŽāĻžāĻāĻĒāĻĨā§ dataāϰ āĻā§āύ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšā§ā§āĻā§ āĻāĻŋ āύāĻž (Integrity)āĨ¤
Protocol āĻšāϞ⧠āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ set of rules āϝāĻž āĻĻā§āĻāĻŋ device-āĻāϰ āĻŽāϧā§āϝ⧠communication āĻā§āĻāĻžāĻŦā§ āĻšāĻŦā§ āϤāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āĨ¤ Data transfer-āĻ integrity āĻ reliability āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠protocol āĻŦāĻŋāĻāĻŋāύā§āύāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§:
đš ā§§. Error Detection āĻ Correctionâ
Protocol āĻā§āϞ⧠checksum, CRC (Cyclic Redundancy Check), āĻāĻŦāĻ parity bit āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ Sender data āĻĒāĻžāĻ āĻžāύā§āϰ āϏāĻŽāϝāĻŧ āĻāĻāĻāĻŋ checksum āϝā§āĻ āĻāϰā§, receiver āϏā§āĻāĻž āĻŽāĻŋāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§ â āύāĻž āĻŽāĻŋāϞāϞ⧠āĻŦā§āĻā§ data corrupt āĻšāϝāĻŧā§āĻā§āĨ¤
đš ⧍. Acknowledgement (ACK) āĻ Retransmissionâ
TCP (Transmission Control Protocol)-āĻ receiver āĻĒā§āϰāϤāĻŋāĻāĻŋ packet āĻĒāĻžāĻāϝāĻŧāĻžāϰ āĻĒāϰ ACK āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ Sender āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻŽāϝāĻŧā§āϰ āĻŽāϧā§āϝ⧠ACK āύāĻž āĻĒā§āϞ⧠(timeout) packet āĻāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāϝāĻŧ â āĻāĻāĻžāĻā§ āĻŦāϞ⧠retransmissionāĨ¤
đš ā§Š. Sequencing āĻ Reorderingâ
Network-āĻ packets āĻāĻŋāύā§āύ āĻāĻŋāύā§āύ route āĻĻāĻŋāϝāĻŧā§ āĻāϏāϤ⧠āĻĒāĻžāϰā§, āĻĢāϞ⧠out of order āĻĒā§āĻāĻāĻžāϤ⧠āĻĒāĻžāϰā§āĨ¤ Protocol sequence number āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϝāĻžāϤ⧠receiver āϏāĻ āĻŋāĻ order-āĻ data reassemble āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
đš ā§Ē. Flow Controlâ
Sender āϝāĻĻāĻŋ receiver-āĻāϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻĻā§āϰā§āϤ data āĻĒāĻžāĻ āĻžāϝāĻŧ, āϤāĻžāĻšāϞ⧠data āĻšāĻžāϰāĻŋāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ Flow control (āϝā§āĻŽāύ TCP-āĻāϰ sliding window) āĻāĻ āϏāĻŽāϏā§āϝāĻž āϰā§āϧ āĻāϰā§āĨ¤
đš ā§Ģ. Congestion Controlâ
Network-āĻ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ traffic āĻšāϞ⧠congestion āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤ TCP-āĻāϰ congestion control algorithm (āϝā§āĻŽāύ slow start, AIMD) data loss āĻāĻŽāĻžāϝāĻŧ āĻāĻŦāĻ network stable āϰāĻžāĻā§āĨ¤
đš ā§Ŧ. Handshakingâ
Data transfer āĻļā§āϰā§āϰ āĻāĻā§ TCP three-way handshake (SYN â SYN-ACK â ACK) āĻĻā§āĻ āĻĒāĻā§āώā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ reliable connection āϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āĨ¤
đ How do checksums and error-detection mechanisms work?â
Checksum āĻšāϞ⧠āĻāĻāĻāĻŋ āĻā§āĻ numerical value āϝāĻž original data āĻĨā§āĻā§ calculate āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻāĻž āĻāĻ āϧāϰāύā§āϰ "fingerprint" â data āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāϞ⧠checksum-āĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤
âī¸ Checksum-āĻāϰ Basic āĻāĻžāĻā§āϰ āϧāĻžāϰāĻž:â
Sender Side:
Data â [Checksum Algorithm] â Data + Checksum value āĻĒāĻžāĻ āĻžāϝāĻŧ
Receiver Side:
Data + Checksum āĻĒāĻžāϝāĻŧ â āĻāĻŦāĻžāϰ Calculate āĻāϰ⧠â āĻĻā§āĻā§ āĻŽā§āϞāĻžāϞ⧠â
, āύāĻž āĻŽā§āϞāϞ⧠â
đĸ ā§§. Simple Checksum (Addition Method)â
āϧāϰ⧠āϤā§āĻŽāĻŋ āϤāĻŋāύāĻāĻž number āĻĒāĻžāĻ āĻžāĻā§āĻā§: 10, 20, 30
Sender:
10 + 20 + 30 = 60 â Checksum = 60
āĻĒāĻžāĻ āĻžāϝāĻŧ: [10, 20, 30, 60]
Receiver:
10 + 20 + 30 = 60 â Match â
(data intact)
āϝāĻĻāĻŋ data corrupt āĻšāϝāĻŧ:
10 + 25 + 30 = 65 â 60 â Mismatch â (error detected!)
đ ⧍. CRC (Cyclic Redundancy Check)â
āĻāĻāĻž āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻŦāĻ powerful error detection methodāĨ¤
Basic Idea:
- Data-āĻā§ āĻāĻāĻāĻž āĻŦāĻĄāĻŧ binary number āĻšāĻŋāϏā§āĻŦā§ āϧāϰāĻž āĻšāϝāĻŧāĨ¤
- āĻāĻāĻāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ divisor (generator polynomial) āĻĻāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
- Remainder āĻāĻžāĻ āĻšāϞ⧠CRC value â āĻāĻāĻž data-āϰ āϏāĻžāĻĨā§ āĻĒāĻžāĻ āĻžāύ⧠āĻšāϝāĻŧāĨ¤
- Receiver āĻāĻāĻ āĻāĻžāĻ āĻāϰ⧠â remainder 0 āĻšāϞ⧠data āĻ āĻŋāĻ āĻāĻā§āĨ¤
Sender:
Data Ãˇ Generator = Quotient + Remainder (CRC)
āĻĒāĻžāĻ āĻžāϝāĻŧ: Data + CRC
Receiver:
(Data + CRC) Ãˇ Generator = Remainder 0 â
â No error
= Remainder â 0 â â Error detected!
đĄ CRC āĻā§āĻĨāĻžāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšāϝāĻŧ: Ethernet, Wi-Fi, ZIP files, hard disk storageāĨ¤
âī¸ ā§Š. Parity Bitâ
āĻāĻāĻž āϏāĻŦāĻā§āϝāĻŧā§ simple error detectionāĨ¤
- āĻĒā§āϰāϤāĻŋāĻāĻž data byte-āĻāϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻž extra parity bit āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
- Even parity: total 1-āĻāϰ āϏāĻāĻā§āϝāĻž even āϰāĻžāĻāĻž āĻšāϝāĻŧāĨ¤
- Odd parity: total 1-āĻāϰ āϏāĻāĻā§āϝāĻž odd āϰāĻžāĻāĻž āĻšāϝāĻŧāĨ¤
Data: 1010001 â 1 āĻāϰ āϏāĻāĻā§āϝāĻž = 3 (odd)
Even parity bit = 1 āϝā§āĻ āĻāϰ⧠â 10100011 (āĻāĻāύ 4āĻāĻž 1, even â
)
Receiver āĻĒā§āϞā§: 10100111 â 1 āĻāϰ āϏāĻāĻā§āϝāĻž = 5 (odd) â Error!
â ī¸ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž: Parity bit āĻļā§āϧ⧠single-bit error āϧāϰāϤ⧠āĻĒāĻžāϰā§, āĻĻā§āĻā§ bit āĻāĻāϏāĻžāĻĨā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāϞ⧠āϧāϰāϤ⧠āĻĒāĻžāϰ⧠āύāĻžāĨ¤
đ ā§Ē. MD5 / SHA (Cryptographic Hash)â
File download āĻŦāĻž security-āϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤
- āĻĒā§āϰ⧠file āĻŦāĻž message āĻĨā§āĻā§ āĻāĻāĻāĻž fixed-size hash value āϤā§āϰāĻŋ āĻšāϝāĻŧāĨ¤
- Data-āϰ āϏāĻžāĻŽāĻžāύā§āϝ āĻĒāϰāĻŋāĻŦāϰ⧠āϤāύā§āĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϞāĻžāĻĻāĻž hash āĻāϏā§āĨ¤
- MD5 â 128-bit hash, SHA-256 â 256-bit hashāĨ¤
"Hello" â MD5 â 8b1a9953c4611296a827abf8c47804d7
"Hello!" â MD5 â 9c7d5b... (āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϞāĻžāĻĻāĻž!)
đ Error Detection vs Error Correctionâ
| āĻŦāĻŋāώāϝāĻŧ | Error Detection | Error Correction |
|---|---|---|
| āĻā§ āĻāϰ⧠| āĻļā§āϧ⧠error āĻāĻā§ āĻāĻŋāύāĻž āĻŦāϞ⧠| Error āĻ āĻŋāĻāĻ āĻāϰ⧠āĻĻā§āϝāĻŧ |
| āĻāĻĻāĻžāĻšāϰāĻŖ | CRC, Checksum, Parity | Hamming Code, Reed-Solomon |
| āĻŦā§āϝāĻŦāĻšāĻžāϰ | Network transmission | CD/DVD, satellite communication |
đ 29. What are the key protocols: HTTP, HTTPS, FTP, and SMTP?â
āĻāύā§āĻāĻžāϰāύā§āĻā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻžāĻā§āϰ āĻāύā§āϝ āĻĄā§āĻĄāĻŋāĻā§āĻā§āĻĄ āĻāĻŋāĻā§ āĻĒā§āϰāĻā§āĻāϞ āϰā§ā§āĻā§:
- đ HTTP (HyperText Transfer Protocol): āĻā§ā§āĻŦ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻŦāĻ āĻŦā§āϰāĻžāĻāĻāĻžāϰā§āϰ āĻŽāϧā§āϝ⧠āĻā§ā§āĻŦ āĻĒā§āĻā§āϰ data āĻāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§ (āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĒā§āϰā§āĻ 80-āϤā§)āĨ¤
- đ HTTPS (HTTP Secure): āĻāĻāĻŋ HTTP-āĻāϰ āϏāĻŋāĻāĻŋāĻāϰ āĻāĻžāϰā§āϏāύ, āϝāĻž āĻāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ āĻšāĻā§āĻž data-āĻā§ āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āĻāϰ⧠āϏāĻŋāĻāĻŋāĻāϰāĻŋāĻāĻŋ āĻĻā§ā§ (āĻĒā§āϰā§āĻ 443)āĨ¤
- đ FTP (File Transfer Protocol): āĻāύā§āĻāĻžāϰāύā§āĻā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰ āĻĨā§āĻā§ āĻ āύā§āϝ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāϰ⧠āĻŦā§ āĻĢāĻžāĻāϞ āĻāĻĒāϞā§āĻĄ āĻŦāĻž āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻžāϰ āĻĒā§āϰāĻā§āĻāϞāĨ¤
- đ§ SMTP (Simple Mail Transfer Protocol): āĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻžāϰ āĻĨā§āĻā§ āĻ āύā§āϝ āϏāĻžāϰā§āĻāĻžāϰ⧠āĻāĻŽā§āĻāϞ āϏā§āύā§āĻĄ āĻŦ āĻž āϰāĻžāĻāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻĒā§āϰāĻā§āĻāϞāĨ¤
â ī¸ Why is FTP considered insecure, and what are its modern alternatives (SFTP, FTPS)?â
- āĻāύāϏāĻŋāĻāĻŋāĻāϰ āĻā§āύ: āĻā§āϰā§āϝāĻžāĻĄāĻŋāĻļāύāĻžāϞ FTP data āĻāĻŦāĻ āĻĒāĻžāϏāĻā§āĻžāϰā§āĻĄāĻā§āϞā§āĻā§ āϏāĻŽā§āĻĒā§āϰā§āĻŖ "āĻĒā§āϞā§āĻāύ āĻā§āĻā§āϏāĻ" āĻŦāĻž āĻāύ-āĻāύāĻā§āϰāĻŋāĻĒā§āĻā§āĻĄ (Unencrypted) āĻ āĻŦāϏā§āĻĨāĻžā§ āĻĒāĻžāĻ āĻžā§āĨ¤ āĻĢāϞ⧠āĻā§āύ⧠āĻšā§āϝāĻžāĻāĻžāϰ āύā§āĻāĻā§āĻžāϰā§āĻā§ āϏā§āύāĻžāĻāĻĢ (sniff) āĻāϰāϞ⧠āϏāĻšāĻā§āĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
- āĻŽāĻĄāĻžāϰā§āύ āĻŦāĻŋāĻāϞā§āĻĒ (Alternatives):
- SFTP (SSH File Transfer Protocol): āĻāĻāĻŋ āĻāϞāĻžāĻĻāĻž āĻāĻāĻāĻŋ protocol āϝāĻž āĻĒā§āϰ⧠āĻĢāĻžāĻāϞ data-āĻā§ SSH āĻāĻžāύā§āϞā§āϰ āĻŽāϧā§āϝ āĻĻāĻŋā§ā§ āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āĻāϰ⧠āĻĒāĻžāĻ āĻžā§, āĻĢāϞ⧠āĻāĻāĻŋ āĻ āϤā§āϝāύā§āϤ āϏā§āϰāĻā§āώāĻŋāϤāĨ¤
- FTPS (FTP over SSL/TLS): āĻāĻāĻŋ āĻĒā§āϰā§āύ⧠FTP-āĻāϰ āĻāĻĒāϰā§āĻ TLS āĻŦāĻž SSL āĻāύāĻā§āϰāĻŋāĻĒāĻļāύā§āϰ āϞā§ā§āĻžāϰ āϝā§āĻā§āϤ āĻāϰ⧠āϤā§āϰāĻŋ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤
âąī¸ Why is SMTP usually not used for real-time chat? Which protocol is better suited for that?â
- SMTP āϰāĻŋā§ā§āϞ-āĻāĻžāĻāĻŽ āύā§: SMTP āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšā§ā§āĻā§ āĻāĻŽā§āĻāϞ āĻĒāĻžāĻ āĻžāύā§āϰ āĻāύā§āϝ āĻāĻŦāĻ āĻāĻāĻŋ āϏā§āĻā§āϰ-āĻ ā§āϝāĻžāύā§āĻĄ-āĻĢāϰāĻā§āĻžāϰā§āĻĄ (Store-and-forward) āĻŽāĻĄā§āϞ⧠āĻāϞā§āĨ¤ āϏāĻžāϰā§āĻāĻžāϰ āĻŽā§āϏā§āĻ āϰāĻŋāϏāĻŋāĻ āĻāϰ⧠āϏā§āĻā§āϰ āĻāϰā§, āĻāϰāĻĒāϰ āĻĒā§āϰāĻžāĻĒāĻā§āϰ āϏāĻžāϰā§āĻāĻžāϰ⧠āĻĒāĻžāĻ āĻžā§āĨ¤ āĻāĻāĻžāĻŦā§ āĻā§ā§āĻ āϧāĻžāĻĒā§ āĻĒāĻžāϰ āĻšāϤ⧠āĻŦā§āĻļ āĻāĻŋāĻā§ āϏāĻŽā§ (āĻā§ā§āĻ āϏā§āĻā§āύā§āĻĄ āĻŦāĻž āĻā§ā§āĻ āĻŽāĻŋāύāĻŋāĻ) āϞā§āĻā§ āϝāĻžā§, āϝāĻž āϰāĻŋā§ā§āϞ-āĻāĻžāĻāĻŽ āĻā§āϝāĻžāĻā§āϰ āĻāύā§āϝ āĻŽā§āĻā§āĻ āĻāĻĒāϝā§āĻā§āϤ āύā§āĨ¤
- āĻāĻĒāϝā§āĻā§āϤ protocol: āϰāĻŋā§ā§āϞ āĻāĻžāĻāĻŽā§ āĻāύāϏā§āĻā§āϝāĻžāύā§āĻ āĻŽā§āϏā§āĻāĻŋāĻ āĻāϰ āĻāύā§āϝ WebSocket, XMPP, āĻŦāĻž MQTT āĻ āύā§āĻ āĻāĻžāϞ⧠protocol, āĻāĻžāϰāĻŖ āĻāĻā§āϞ⧠āϏāĻžāϰā§āĻŦāĻā§āώāĻŖāĻŋāĻ āϞāĻžāĻāĻ āĻāĻžāύā§āĻāĻļāύ āϤā§āϰāĻŋ āĻāϰ⧠āϰāĻžāĻā§ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ āĻĨā§āĻā§ āĻā§āύ⧠āĻĄāĻŋāϞ⧠āĻāĻžā§āĻžāĻ āĻā§āϞāĻžā§ā§āύā§āĻāĻā§ āĻĒāĻŋāύ āĻŦāĻž āĻĒā§āĻļ (Push) āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
đ 30. How do secure protocols like HTTPS ensure encrypted communication?â
HTTPS (HyperText Transfer Protocol Secure) āĻšāϞ⧠HTTP-āϰ secure versionāĨ¤ āĻāĻāĻž TLS (Transport Layer Security) protocol āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠data encrypt āĻāϰā§, āϝāĻžāϤ⧠āĻā§āĻ āĻŽāĻžāĻāĻĒāĻĨā§ data āĻĒāĻĄāĻŧāϤ⧠āĻŦāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āύāĻž āĻĒāĻžāϰā§āĨ¤
HTTP: Data āĻĒāĻžāĻ āĻžāϝāĻŧ plain text-āĻ â āϝ⧠āĻā§āĻ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰ⧠â
HTTPS: Data āĻĒāĻžāĻ āĻžāϝāĻŧ encrypted-āĻ â āĻā§āĻ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰ⧠āύāĻž â
đ¯ HTTPS-āĻāϰ āϤāĻŋāύāĻāĻž āĻŽā§āϞ āϞāĻā§āώā§āϝ:â
| āϞāĻā§āώā§āϝ | āĻŽāĻžāύ⧠āĻā§ |
|---|---|
| Confidentiality | Data āĻā§āĻ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰāĻŦā§ āύāĻžāĨ¤ |
| Integrity | Data āĻŽāĻžāĻāĻĒāĻĨā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻšāĻŦā§ fix āύāĻžāĨ¤ |
| Authentication | Server āĻāϏāϞ āĻāĻŋāύāĻž āϝāĻžāĻāĻžāĻ āĻāϰāĻžāĨ¤ |
đ¤ What is the TLS handshake process in detail?â
TLS Handshake āĻšāϞ⧠Client āĻ Server-āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻž āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻā§āĻā§āϤāĻŋ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž â āϝā§āĻāĻžāύ⧠āϤāĻžāϰāĻž encrypted communication āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāĻā§ āĻāĻā§ āĻ āĻĒāϰāĻā§ āĻā§āύā§, āĻŦāĻŋāĻļā§āĻŦāĻžāϏ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻāĻž shared secret key āϤā§āϰāĻŋ āĻāϰā§āĨ¤
āϧāĻžāĻĒāϏāĻŽā§āĻš:
- đââī¸ ClientHello: Browser āĻĒā§āϰāĻĨāĻŽā§ Server-āĻā§ āĻāĻāĻāĻž message āĻĒāĻžāĻ āĻžāϝāĻŧ, āϝā§āĻāĻžāύ⧠āĻĨāĻžāĻā§ āϤāĻžāϰ āϏāĻžāĻĒā§āϰā§āĻā§āĻĄ TLS version, cipher suites āĻāĻŦāĻ āĻāĻāĻāĻž random numberāĨ¤
- đââī¸ ServerHello: Server reply āĻāϰ⧠āĻāĻŦāĻ āĻāĻžāύāĻžāϝāĻŧ āĻā§āύ TLS version āĻ cipher suite āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāĻŦā§, āϏāĻžāĻĨā§ Server-āĻāϰ āύāĻŋāĻā§āϰ random numberāĨ¤
- đ Certificate āĻĒāĻžāĻ āĻžāύā§: Server āϤāĻžāϰ SSL/TLS Certificate (Public Key, CA signature, expiry date) āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
- đ Certificate Verify: Browser āύāĻŋāĻā§ CA-āϰ Public Key āĻĻāĻŋāϝāĻŧā§ signature āϝāĻžāĻāĻžāĻ āĻāϰā§āĨ¤
- đ Key Exchange: Client āĻāĻāĻāĻž "pre-master secret" āϤā§āϰāĻŋ āĻāϰ⧠Server-āĻāϰ Public Key āĻĻāĻŋāϝāĻŧā§ encrypt āĻāϰ⧠āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
- đ§Š Session Key āϤā§āϰāĻŋ: Client āĻ Server āĻāĻāϝāĻŧā§āĻ āύāĻŋāĻ āύāĻŋāĻ random number āĻ pre-master secret āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻžāĻ "Symmetric Session Key" āϤā§āϰāĻŋ āĻāϰā§āĨ¤
- â Finished Message: āĻāĻāϝāĻŧ āĻĒāĻā§āώ āύāϤā§āύ Session Key āĻĻāĻŋāϝāĻŧā§ encrypt āĻāϰ⧠message āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
- đ Encrypted Data Transfer: āĻāϰāĻĒāϰ āĻĨā§āĻā§ āϏāĻŦ data "AES symmetric encryption" āĻĻāĻŋāϝāĻŧā§ encrypt āĻšāϝāĻŧā§ āĻāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ āĻšāϝāĻŧāĨ¤
đ What is certificate pinning and when is it used in backend applications?â
Certificate Pinning āĻšāϞ⧠āĻā§āϞāĻžā§ā§āύā§āĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ (āϝā§āĻŽāύ āĻŽā§āĻŦāĻžāĻāϞ āĻ ā§āϝāĻžāĻĒ āĻŦāĻž IoT āĻĄāĻŋāĻāĻžāĻāϏ) āĻāϰ āĻā§āϤāϰ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻā§āύ⧠āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻĒāĻžāĻŦāϞāĻŋāĻ-āĻā§ āĻŦāĻž āϏāĻžāϰā§āĻāĻŋāĻĢāĻŋāĻā§āĻā§āϰ āĻšā§āϝāĻžāĻļ āϏāϰāĻžāϏāϰāĻŋ āĻšāĻžāϰā§āĻĄāĻā§āĻĄ (hardcode) āĻāϰ⧠āĻĻā§āĻā§āĻžāĨ¤
- āĻŦā§āϝāĻŦāĻšāĻžāϰ: āĻāĻāĻŋ Man-in-the-Middle (MitM) āĻ ā§āϝāĻžāĻāĻžāĻ āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰā§āĨ¤ āĻāĻžāϰāĻŖ āĻā§āĻ āϝāĻĻāĻŋ āĻĢā§āĻ āϏāĻžāϰā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻĻāĻŋā§ā§ āϧā§āĻāĻž āĻĻā§āĻā§āĻžāϰ āĻā§āώā§āĻāĻž āĻāϰā§, āĻ ā§āϝāĻžāĻĒāĻāĻŋ āϤāĻāύāĻ āĻāĻžāύā§āĻāĻļāύ āϰāĻŋāĻā§āĻā§āĻ āĻāϰ⧠āĻĻā§āĻŦā§ āϝā§āĻšā§āϤ⧠āϏā§āĻāĻŋ āϤāĻžāϰ āĻšāĻžāϰā§āĻĄāĻā§āĻĄ āĻāϰāĻž āϏāĻžāϰā§āĻāĻŋāĻĢāĻŋāĻā§āĻā§āϰ āϏāĻžāĻĨā§ āĻŽā§āϞ⧠āύāĻžāĨ¤
đ 31. What are protocol stacks, handshakes, and encryption?â
- đĨ Protocol Stack: āĻāĻāĻŋ āĻšāϞ⧠āĻĒā§āϰā§āĻā§āĻāϞāĻā§āϞā§āϰ āĻāĻāĻāĻŋ āϏā§āϤāϰāĻŦāĻŋāύā§āϝāĻžāϏ (āϝā§āĻŽāύ OSI āĻŦāĻž TCP/IP āĻŽāĻĄā§āϞ)āĨ¤ āĻāĻāĻžāύ⧠āύāĻŋāĻā§āϰ āϏā§āϤāϰā§āϰ protocol āĻāĻĒāϰā§āϰ āϏā§āϤāϰā§āϰ āĻĒā§āϰā§āĻā§āĻāϞāĻā§ āϏāĻžāϰā§āĻāĻŋāϏ āĻŦāĻž āϏā§āĻŦāĻž āĻĻā§ā§āĨ¤
- đ¤ Handshakes: āĻā§āύ⧠āĻāĻžāύā§āĻāĻļāύ āϏā§āĻāĻžāĻŦāϞāĻŋāĻļ āĻāϰāĻžāϰ āĻāĻā§ āĻĻā§āĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏ āϝāĻāύ āύāĻŋāĻā§āĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻāĻŋāĻā§ āύāĻŋāϝāĻŧāĻŽ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŽā§āϏā§āĻ āĻŦāĻŋāύ āĻŋāĻŽāϝāĻŧ āĻāϰā§, āϤāĻžāĻā§ āĻšā§āϝāĻžāύā§āĻĄāĻļā§āĻ āĻŦāϞ⧠(āϝā§āĻŽāύ TCP 3-way handshake)āĨ¤
- đ Encryption: data-āĻā§ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻ āĻāĻžāϧ āĻŦāĻž āĻĻā§āϰā§āĻŦā§āϧā§āϝ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž, āϝāĻž āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ āύā§āĻŽā§āĻĻāĻŋāϤ āϰāĻŋāϏāĻŋāĻāĻžāϰ āĻāĻžā§āĻž āĻāϰ āĻā§āĻ āĻĒā§āϤ⧠āĻĒāĻžāϰ⧠āύāĻžāĨ¤
đēī¸ How does the TCP/IP stack map to the OSI model?â
OSI āĻŽāĻĄā§āϞā§āϰ ā§āĻāĻŋ āϞā§ā§āĻžāϰā§āϰ āĻŦāĻŋāĻĒāϰā§āϤ⧠āĻŦāĻžāϏā§āϤāĻŦ āĻā§āĻŦāύ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāĻā§āĻž TCP/IP āĻŽāĻĄā§āϞ⧠ā§ĒāĻāĻŋ āϞā§ā§āĻžāϰ āĻĨāĻžāĻā§:
- Application Layer (TCP/IP): āĻāĻāĻŋ OSI āĻŽāĻĄā§āϞā§āϰ āĻāĻĒāϰā§āϰ āϤāĻŋāύāĻāĻŋ āϞā§āϝāĻŧāĻžāϰāĻā§ (Application, Presentation, Session) āĻāĻāϏāĻžāĻĨā§ āĻāĻāĻžāϰ āĻāϰā§āĨ¤ (āϝā§āĻŽāύ: HTTP, FTP)
- Transport Layer (TCP/IP): āĻāĻāĻŋ āĻšā§āĻŦāĻšā§ OSI-āĻāϰ Transport layer āĻāϰ āϏāĻŽāϤā§āϞā§āϝāĨ¤ (āϝā§āĻŽāύ: TCP, UDP)
- Internet Layer (TCP/IP): āĻāĻāĻŋ OSI-āĻāϰ Network layer āĻāϰ āϏāĻŽāϤā§āϞā§āϝāĨ¤ (āϝā§āĻŽāύ: IPv4, IPv6)
- Network Access Layer (TCP/IP): āĻāĻāĻŋ OSI-āĻāϰ āύāĻŋāĻā§āϰ āĻĻā§āĻāĻŋ āϞā§āϝāĻŧāĻžāϰ (Data Link āĻāĻŦāĻ Physical) āύāĻŋāϝāĻŧā§ āĻāĻ āĻŋāϤāĨ¤
đĩī¸ââī¸ What is forward secrecy and why does it matter?â
Forward Secrecy (āĻŦāĻž Perfect Forward Secrecy - PFS) āĻšāϞ⧠āĻāύāĻā§āϰāĻŋāĻĒāĻļāύā§āϰ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ, āϝāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ āύāϤā§āύ āϏā§āĻļāύā§āϰ āĻāύā§āϝ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻāύāĻŋāĻ āĻāĻŦāĻ āύāϤā§āύ āϏā§āĻļāύ-āĻā§ (Session Key) āĻā§āύāĻžāϰā§āĻ āĻāϰā§āĨ¤
- āĻā§āύ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ? āĻšā§āϝāĻžāĻāĻžāϰ āϝāĻĻāĻŋ āĻāĻ āĻĨā§āĻā§ ā§Ģ āĻŦāĻāϰ āĻĒāϰ āĻā§āύā§āĻāĻžāĻŦā§ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻĒā§āϰāĻžāĻāĻā§āĻ-āĻā§ (Private Key) āĻšā§āϝāĻžāĻ āĻāϰā§āĻ āĻĢā§āϞā§, āϤāĻŦā§āĻ āϏ⧠āĻāĻā§āϰ āϰā§āĻāϰā§āĻĄ āĻāϰāĻž āĻŦāĻž āĻā§āϝāĻžāĻĒāĻāĻžāϰ āĻāϰāĻž āĻā§āϰāĻžāĻĢāĻŋāĻ āĻŦāĻž āĻā§āϝāĻžāĻāĻā§āϞ⧠āĻĄāĻŋāĻā§āϰāĻŋāĻĒā§āĻ āĻāϰ⧠āĻŽā§āϞāĻžāϤ⧠āĻĒāĻžāϰāĻŦā§ fix āύāĻžāĨ¤ āĻāĻžāϰāĻŖ āϤāĻāύāĻāĻžāϰ āϏā§āĻļāύ-āĻā§ āĻā§āϞ⧠āĻĒā§āϰāĻžāĻāĻā§āĻ āĻā§ āĻāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰāĻļā§āϞ āĻāĻŋāϞ āύāĻž āĻāĻŦāĻ āϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§āĻ āĻĄāĻŋāϏā§āĻā§āϰ⧠āĻŦāĻž āĻŦāĻžāϤāĻŋāϞ āĻšā§ā§ āĻāĻŋā§ā§āĻāĻŋāϞāĨ¤
đī¸ 32. What is the OSI model, and how does it relate to Internet protocols?â
OSI (Open Systems Interconnection) Model āĻšāϞ⧠āĻāĻāĻāĻŋ āĻĨāĻŋāĻāϰā§āĻāĻŋāĻā§āϝāĻžāϞ āĻāύāϏā§āĻĒā§āĻ āĻŦāĻž āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻŽāĻĄā§āϞāĨ¤ āύā§āĻāĻā§āĻžāϰā§āĻā§ āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏ āĻĨā§āĻā§ āĻāϰā§āĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāϏ⧠āĻāύā§āĻāĻžāϰāύā§āĻ āĻĒā§āϰāĻā§āĻāϞāĻā§āϞ⧠āĻā§āĻāĻžāĻŦā§ data āĻĒāĻžāĻ āĻžā§, āϤāĻž āĻŦā§āĻāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰ⧠āĻĒā§āϰāĻā§āϰāĻŋā§āĻžāĻāĻŋāĻā§ ā§āĻāĻŋ āϧāĻžāĻĒā§ āĻŦāĻž āϞā§ā§āĻžāϰ⧠āĻāĻžāĻ āĻāϰāĻž āĻšā§ā§āĻā§āĨ¤ āĻāύā§āĻāĻžāϰāύā§āĻ āĻĒā§āϰā§āĻā§āĻāϞāĻā§āϞ⧠(āϝā§āĻŽāύ HTTP, TCP) āĻŽā§āϞāϤ āĻāĻ āϞā§ā§āĻžāϰāĻā§āϞā§āϤ⧠āĻ āĻŦāϏā§āĻĨāĻžāύ āĻāϰā§āĨ¤
đĻ Can you explain each of the 7 OSI layers with a real-world example?â
āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻŋ āĻŦāĻž āĻĒāĻžāϰā§āϏā§āϞ āĻĒāĻžāĻ āĻžāύā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻāĻŋāϝāĻŧā§ āĻāĻžāĻŦāĻž āϝāĻžāĻ:
- Application Layer (āϞā§ā§āĻžāϰ ā§): āϝā§āĻ āĻ ā§āϝāĻžāĻĒāĻāĻŋ āĻāĻŽāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻāĻŋ (āϝā§āĻŽāύ āĻŦā§āϰāĻžāĻāĻāĻžāϰ āĻŦāĻž Email)āĨ¤ āĻāĻāĻžāύ⧠HTTP āĻŦāĻž SMTP āĻāĻžāĻ āĻāϰā§āĨ¤
- Presentation Layer (āϞā§ā§āĻžāϰ ā§Ŧ): āĻāĻŽāĻŋ āĻāĻŋāĻ āĻŋāĻāĻž āĻā§āύ āĻāĻžāώāĻžā§ (Data Formatting) āĻŦāĻž āĻāύāĻā§āϰāĻŋāĻĒāĻļāύ⧠(TLS) āϞāĻŋāĻāĻŦ, āϤāĻž āĻ āĻŋāĻ āĻāϰā§āĨ¤
- Session Layer (āϞā§ā§āĻžāϰ ā§Ģ): āϏāĻāϝā§āĻ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āĻāĻŦāĻ āϏāĻāϝā§āĻ āϧāϰ⧠āϰāĻžāĻāĻž (Connection established)āĨ¤
- Transport Layer (āϞā§ā§āĻžāϰ ā§Ē): āĻāĻŋāĻ āĻŋāϰ āĻŦāĻĄāĻŧ āĻ āĻāĻļāĻā§āϞā§āĻā§ āĻā§āĻ āĻā§āĻ āϏā§āĻāĻŽā§āύā§āĻā§ āĻāĻžāĻ āĻāϰāĻž (TCP/UDP)āĨ¤ āĻāĻ āϞā§ā§āĻžāϰ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āĻāĻŋāĻ āĻŋāĻāĻž āĻ āĻŋāĻāĻŽāϤ⧠āĻĒā§āĻāĻāĻžāĻŦā§ āĻāĻŋ āύāĻžāĨ¤
- Network Layer (āϞā§ā§āĻžāϰ ā§Š): āĻāĻāĻžāύ⧠IP āĻāĻžāĻ āĻāϰā§āĨ¤ āĻĒā§āϝāĻžāĻā§āĻā§āϰ āĻāĻžā§ā§ āϏā§āύā§āĻĄāĻžāϰ āĻāĻŦāĻ āϰāĻŋāϏāĻŋāĻāĻžāϰā§āϰ āĻ ā§āϝāĻžāĻĄā§āϰā§āϏ āĻāĻŦāĻ āϰā§āĻ āĻŦāϏāĻžāύ⧠āĻšāϝāĻŧāĨ¤
- Data Link Layer (āϞā§ā§āĻžāϰ ⧍): āĻāĻāĻžāύ⧠MAC āĻ ā§āϝāĻžāĻĄā§āϰā§āϏ āϝā§āĻā§āϤ āĻāϰ⧠āĻĢā§āϰā§āĻŽ āϤā§āϰāĻŋ āĻāϰāĻž āĻšā§āĨ¤ āϰāĻžāĻāĻāĻžāϰ⧠āĻāĻ āĻšāĻĒ āĻĨā§āĻā§ āĻĒāϰā§āϰ āĻšāĻĒā§ āĻā§āĻāĻžāĻŦā§ āϝāĻžāĻŦā§ āϤāĻžāϰ āĻĢāĻŋāĻāĻŋāĻā§āϝāĻžāϞ āĻā§āϝāĻžāϰāĻžāύā§āĻāĻŋ āĻĻā§ā§āĨ¤
- Physical Layer (āϞā§ā§āĻžāϰ ā§§): āĻāĻāĻŋ āĻāĻā§āĻŦāĻžāϰ⧠āĻĢāĻŋāĻāĻŋāĻā§āϝāĻžāϞāĨ¤ āĻāĻŋāĻ āĻŋāĻāĻž āĻĄā§āϞāĻŋāĻāĻžāϰāĻŋ āĻŽā§āϝāĻžāύā§āϰ āĻšāĻžāϤ⧠āĻŦāĻž āĻĢāĻžāĻāĻŦāĻžāϰ āĻ āĻĒāĻāĻŋāĻ āĻā§āϝāĻžāĻŦāϞ āĻšāϝāĻŧā§ āϏāĻŋāĻāύā§āϝāĻžāϞ⧠āĻĒāϰāĻŋāĻŖāϤ āĻšāϝāĻŧāĨ¤
đ§ą At which OSI layer do firewalls typically operate?â
- Network & Transport Layer (āϞā§ā§āĻžāϰ ā§Š āĻāĻŦāĻ ā§Ē): āĻā§āϰāĻžāĻĄāĻŋāĻļāύāĻžāϞ (Packet-filtering) āĻĢāĻžā§āĻžāϰāĻā§āĻžāϞāĻā§āϞ⧠āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻĒāĻŋ āĻ ā§āϝ āĻžāĻĄā§āϰā§āϏ āĻāĻŦāĻ āĻĒā§āϰā§āĻ āύāĻžāĻŽā§āĻŦāĻžāϰā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āϰā§āϞāϏ āϤā§āϰāĻŋ āĻāϰ⧠āĻāĻžāĻ āĻāϰā§āĨ¤
- Application Layer (āϞā§ā§āĻžāϰ ā§): āĻāϧā§āύāĻŋāĻ āĻŦāĻž Next-Generation Firewalls (NGFW) āĻāĻŦāĻ Web Application Firewalls (WAF) āĻā§āϞ⧠āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻāύāĻā§āύā§āĻ (āϝā§āĻŽāύ HTTP āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻā§āϰ āĻšā§āĻĄāĻžāϰ, āĻĒā§āϞā§āĻĄ) āϰāĻŋāĻĄ āĻāϰā§, āϝāĻž āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϞā§ā§āĻžāϰ⧠āĻāĻžāĻ āĻāϰā§āĨ¤
đĸ 33. What is the difference between IPv4 and IPv6, and why is IPv6 important?â
āĻāύā§āĻāĻžāϰāύā§āĻā§āϰ āĻĒā§āϰāϏāĻžāϰ āĻŦāĻžāĻĄāĻŧāĻžāϰ āĻāĻžāϰāĻŖā§ ā§Šā§¨-āĻŦāĻŋāĻā§āϰ IPv4 (āϝā§āĻŽāύ 192.168.0.1) āĻ
ā§āϝāĻžāĻĄā§āϰā§āϏāĻā§āϞ⧠āĻļā§āώ āĻšāϝāĻŧā§ āϝāĻžāĻā§āĻā§āĨ¤ āϤāĻžāĻ ā§§ā§¨ā§Ž-āĻŦāĻŋāĻā§āϰ IPv6 āĻ
ā§āϝāĻžāĻĄā§āϰā§āϏā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻĻā§āĻāĻž āĻĻāĻŋāϝāĻŧā§āĻā§, āϝāĻž āĻā§āϰāĻŋāϞāĻŋāϝāĻŧāύ āĻā§āϰāĻŋāϞāĻŋāϝāĻŧāύ āύāϤā§āύ āĻ
ā§āϝāĻžāĻĄā§āϰā§āϏ āϏā§āĻĒā§āϏ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻāϰ āϰāĻžāĻāĻāĻŋāĻ āĻāĻĢāĻŋāĻļāĻŋāϝāĻŧā§āύā§āϏāĻŋ āĻāĻžāϞā§āĨ¤
đ What is IPv6 address notation and how does it differ from IPv4?â
- IPv4: āĻāĻāĻŋ āĻĄā§āϏāĻŋāĻŽāĻžāϞ āĻŦāĻž āĻĻāĻļāĻŽāĻŋāĻ āϏāĻāĻā§āϝāĻžāϝāĻŧ (ā§Ļ-⧍ā§Ģā§Ģ) āϞā§āĻāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋ āĻāĻžāĻā§ āĻĄāĻ (.) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāϰ ā§ĒāĻāĻŋ āĻŦā§āϞāĻ āĻĨāĻžāĻā§āĨ¤ (āϝā§āĻŽāύ:
203.0.113.5) - IPv6: āĻāĻāĻŋ āĻšā§āĻā§āϏāĻžāĻĄā§āϏāĻŋāĻŽāĻžāϞ (Hexadecimal) āĻŦāĻž āώā§āĻĄāĻŧāĻļāĻŽāĻŋāĻ āϏāĻāĻā§āϝāĻžāϝāĻŧ āϞā§āĻāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋ āĻŦā§āϞāĻā§ āĻā§āϞāύ (:) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāϰ ā§ŽāĻāĻŋ āĻŦā§āϞāĻ āĻĨāĻžāĻā§āĨ¤ (āϝā§āĻŽāύ:
2001:0db8:85a3:0000:0000:8a2e:0370:7334)āĨ¤ āĻļā§āύā§āϝāĻā§āϞ⧠āϏāĻāĻā§āώā§āĻĒ āĻāϰāĻžāϰ āĻāĻĒāĻžāϝāĻŧāĻ (::) āĻāĻāĻžāύ⧠āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύāĨ¤
đ§ What challenges arise when migrating a backend system from IPv4 to IPv6?â
āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻāĻāĻĒāĻŋ āĻŽāĻžāĻāĻā§āϰā§āĻļāύā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻāĻŋāĻā§ āĻāĻāĻŋāϞāϤāĻž āϤā§āϰāĻŋ āĻšā§:
- āĻāĻŽāĻĒā§āϝāĻžāĻāĻŋāĻŦāĻŋāϞāĻŋāĻāĻŋ: āϏāĻŦ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻŦāĻž āĻĄāĻŋāĻāĻžāĻāϏ āĻāĻāύ⧠IPv6 āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āύāĻžāĨ¤ āϤāĻžāĻ "Dual Stack" āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻ āĻāϰāϤ⧠āĻšāϝāĻŧ (āĻĻā§āĻāĻŋ āĻāĻāĻĒāĻŋāĻ āĻāĻāϏāĻžāĻĨā§ āϰāĻžāύ āĻāϰāĻžāύā§)āĨ¤
- Database āϏā§āĻā§āϰā§āĻ: āĻ
āύā§āĻ āϞā§āĻāĻžāϏāĻŋ āϏāĻŋāϏā§āĻā§āĻŽā§ āĻāĻāĻĒāĻŋ āĻ
ā§āϝāĻžāĻĄā§āϰā§āϏ āϏāĻāϰāĻā§āώāĻŖā§āϰ āĻāύā§āϝ āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āĻĢāĻŋāϞā§āĻĄ
VARCHAR(15)āϰāĻžāĻāĻž āĻšāϤ (IPv4 āĻāϰ āĻāύā§āϝ)āĨ¤ āĻāĻŋāύā§āϤ⧠IPv6 āĻāϰ āĻāύā§āϝVARCHAR(39)āĻŦāĻž āĻāϰ āĻŦā§āĻļāĻŋ āĻāĻžāϝāĻŧāĻāĻž āĻĻāϰāĻāĻžāϰāĨ¤ - IP Parsing Logic: āĻāĻāĻĒāĻŋ āĻĒāĻžāϰā§āϏāĻŋāĻ āĻŦāĻž IP āĻĨā§āĻā§ āĻāĻāĻāĻžāϰā§āϰ āϞā§āĻā§āĻļāύ āĻā§āϰā§āϝāĻžāĻāĻŋāĻ āĻāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻĨāĻžāϰā§āĻĄ-āĻĒāĻžāϰā§āĻāĻŋ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĻā§āϞ⧠āϝāĻĻāĻŋ IPv6 āĻāϰ āĻāύā§āϝ āĻāĻĒāĻĄā§āĻ āύāĻž āĻāϰāĻž āĻĨāĻžāĻā§ āϤāĻŦā§ āĻŦāĻžāĻ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
⥠34. What is WebSocket, and how does it differ from HTTP for real-time communication?â
WebSocket āĻšāϞ⧠āĻāĻāĻāĻŋ āĻāϧā§āύāĻŋāĻ āĻāĻŽāĻŋāĻāύāĻŋāĻā§āĻļāύ protocol, āϝāĻž āĻā§āϞāĻžā§ā§āύā§āĻ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻŦāĻžāĻ-āĻĄāĻŋāϰā§āĻāĻļāύāĻžāϞ (Bidirectional), āĻĢā§āϞ-āĻĄā§āĻĒā§āϞā§āĻā§āϏ (Full-duplex) āĻāĻŦāĻ āĻĒāĻžāϰāϏāĻŋāϏā§āĻā§āύā§āĻ (Persistent) āĻāĻžāύā§āĻāĻļāύ āϤā§āϰāĻŋ āĻāϰ⧠āϰāĻžāĻā§ āĨ¤
- āϏāĻžāϧāĻžāϰāĻŖ HTTP āϤ⧠āĻā§āϞāĻžā§ā§āύā§āĻ āϰāĻŋāĻā§ā§ā§āϏā§āĻ āύāĻž āĻāϰāϞ⧠āϏāĻžāϰā§āĻāĻžāϰ āύāĻŋāĻ āĻĨā§āĻā§ āύāĻŋāĻā§ āĻāĻŋāĻā§ āĻĒāĻžāĻ āĻžāϤ⧠āĻĒāĻžāϰ⧠āύāĻžāĨ¤ āĻāĻŋāύā§āϤ⧠āϝāĻĻāĻŋ āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽ āĻĄāĻžāĻāĻž (āϝā§āĻŽāύ āĻā§āϝāĻžāĻāĻŋāĻ, āϞāĻžāĻāĻ āϏā§āĻā§āϰ) āĻĻāϰāĻāĻžāϰ āĻšāϝāĻŧ, āϤāĻŦā§ HTTP āϤ⧠āĻŦāĻžāϰāĻŦāĻžāϰ āϰāĻŋāĻā§ā§ā§āϏā§āĻ (Polling) āĻĒāĻžāĻ āĻžāϤ⧠āĻšāϝāĻŧ, āϝāĻž āĻŦā§āϝāĻžāύā§āĻĄāĻāĻāĻĨ āύāώā§āĻ āĻāϰā§āĨ¤
- WebSocket āĻļā§āϰā§āϤā§āĻ āĻāĻāĻāĻŋ āĻāĻžāύā§āĻāĻļāύ āĻāĻĒā§āύ āĻāϰ⧠āϰāĻžāĻā§, āĻĢāϞ⧠āϰāĻŋāĻā§ā§ā§āϏā§āĻā§āϰ āĻĻāϰāĻāĻžāϰ āĻšā§ āύāĻž, āϏāĻžāϰā§āĻāĻžāϰ āϤāĻžāϰ āĻāĻā§āĻāĻžāĻŽāϤ⧠āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽā§ āϝā§āĻā§āύ⧠āĻŽā§āĻšā§āϰā§āϤ⧠āĻā§āϞāĻžāϝāĻŧā§āύā§āĻāĻā§ data āĻĒā§āĻļ (Push) āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
đ¤ What is the WebSocket handshake process?â
WebSocket āĻĒā§āϰā§āĻ 80 āĻŦāĻž 443 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻ āĻāĻžāĻ āĻāϰā§āĨ¤
- āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻĒā§āϰāĻĨāĻŽā§ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻāĻāĻŋ HTTP
GETāϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻā§āϰ āĻšā§āĻĄāĻžāϰā§Upgrade: websocketāĻāĻŦāĻConnection: UpgradeāϞā§āĻāĻž āĻĨāĻžāĻā§āĨ¤ - āϏāĻžāϰā§āĻāĻžāϰ āϝāĻĻāĻŋ āĻāϝāĻŧā§āĻŦāϏā§āĻāĻ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰā§, āϤāĻŦā§ āϏ⧠āϏā§āĻā§āϝāĻžāĻāĻžāϏ āĻā§āĻĄ
101 Switching ProtocolsāĻĻāĻŋāϝāĻŧā§ āϰā§āϏāĻĒāύ ā§āϏ āĻāϰā§āĨ¤ - āĻāϰāĻĒāϰ āĻĨā§āĻā§ HTTP āĻāϰ āĻŦāĻĻāϞ⧠āĻāĻāĻ TCP āĻāĻžāύā§āĻāĻļāύā§āϰ āĻāĻĒāϰ āĻĻāĻŋāϝāĻŧā§ WebSocket āĻāϰ āϰā§āϞāϏ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻĢā§āϞ-āĻĄā§āĻĒā§āϞā§āĻā§āϏ data āĻāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ āĻļā§āϰ⧠āĻšāϝāĻŧāĨ¤
đ How does Socket.IO build on top of WebSocket?â
Socket.IO āϏāϰāĻžāϏāϰāĻŋ WebSocket āύāϝāĻŧ, āĻŦāϰāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻŦāĻž āϰâā§āϝāĻžāĻĒāĻžāϰ (Wrapper) āϝāĻž āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽ āĻĢāĻŋāĻāĻžāϰāĻā§āϞā§āĻā§ āĻāϰ⧠āϏāĻšāĻ āĻāϰ⧠āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
- āύāĻŋāĻāϏā§āĻŦ āĻĢāĻŋāĻāĻžāϰ: āĻ āĻā§-āϰāĻŋāĻāĻžāύā§āĻāĻļāύ (Auto-reconnection), āĻŦā§āϰāĻĄāĻāĻžāϏā§āĻāĻŋāĻ (Broadcasting), āĻāĻŦāĻ āĻŽāĻžāϞā§āĻāĻŋāĻĒā§āϞā§āĻā§āϏāĻŋāĻ āĻŦāĻž āϰā§āĻŽ (Rooms & Namespaces) āϏāĻžāĻĒā§āϰā§āĻāĨ¤
- āĻĢāϞāĻŦā§āϝāĻžāĻ āĻŽā§āĻāĻžāύāĻŋāĻāĻŽ: āϝāĻĻāĻŋ āĻā§āύ⧠āĻĒā§āϰāĻžāϤāύ āĻŦā§āϰāĻžāĻāĻāĻžāϰ⧠WebSocket āϏāĻžāĻĒā§āϰā§āĻ āύāĻž āĻĨāĻžāĻā§, āϤāĻŦā§ Socket.IO āύāĻŋāĻā§ āĻĨā§āĻā§āĻ HTTP Long-polling -āĻ āϏā§āĻāĻ (fallback) āĻāϰ⧠āϰāĻŋā§ā§āϞ-āĻāĻžāĻāĻŽ āĻāĻāϰāĻŖ āĻŦāĻāĻžāϝāĻŧ āϰāĻžāĻā§āĨ¤
đĄ When would you choose Server-Sent Events (SSE) over WebSocket?â
SSE (Server-Sent Events) āĻšāϞ⧠āĻāϝāĻŧāĻžāύ-āĻāϝāĻŧā§ (One-way) āĻŦāĻž āĻāĻāĻŽā§āĻā§ āĻāĻŽāĻŋāĻāύāĻŋāĻā§āĻļāύāĨ¤
- āϝāĻĻāĻŋ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋāϤ⧠āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏāĻžāϰā§āĻāĻžāϰ āĻĨā§āĻā§ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻā§āϰ āĻĻāĻŋāĻā§ āĻĒā§āϰāϤāĻŋāύāĻŋāϝāĻŧāϤ āĻāĻĒāĻĄā§āĻ āĻĒāĻžāĻ āĻžāύā§āϰ āĻĻāϰāĻāĻžāϰ āĻšāϝāĻŧ (āϝā§āĻŽāύ: āϞāĻžāĻāĻ āύāĻŋāĻāĻ āĻĢāĻŋāĻĄ, āϏā§āĻāĻ āĻāĻŋāĻā§āĻāĻžāϰ āĻŦāĻž āύā§āĻāĻŋāĻĢāĻŋāĻā§āĻļāύ), āĻāĻŦāĻ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻĨā§āĻā§ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻĻāĻŋāĻā§ āĻŦāĻžāϰāĻŦāĻžāϰ āĻŽā§āϏā§āĻ āĻĒāĻžāĻ āĻžāύā§āϰ āĻĻāϰāĻāĻžāϰ āύāĻž āĻĨāĻžāĻā§, āϤāĻŦā§ WebSocket āĻāϰ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ SSE āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤ āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ HTTP āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻ āĻāĻžāĻ āĻāϰ⧠āĻāĻŦāĻ āϏā§āĻāĻāĻĒ āĻāϰāĻž āĻ āύā§āĻ āϏāĻšāĻāĨ¤
đ 35. How does gRPC compare to HTTP for backend API communication?â
gRPC (gRPC Remote Procedure Calls) āĻšāϞ⧠āĻā§āĻāϞā§āϰ āϤā§āϰāĻŋ āĻāϰāĻž āĻāĻāĻāĻŋ āĻ āϤā§āϝāĻžāϧā§āύāĻŋāĻ āĻāĻŦāĻ āĻšāĻžāĻ-āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻāĻĒā§āύ āϏā§āϰā§āϏ RPC āĻĢā§āϰā§āĻŽāĻā§āĻžāϰā§āĻāĨ¤
- āϏāĻžāϧāĻžāϰāĻŖ REST API (āϝāĻž HTTP 1.1 āĻāĻŦāĻ JSON āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§) āĻāϰ āϤ⧠āϞāύāĻžāϝāĻŧ gRPC āĻ āύā§āĻ āĻĢāĻžāϏā§āĻ āĻāĻŦāĻ āĻāĻĢāĻŋāϏāĻŋāϝāĻŧā§āύā§āĻāĨ¤
- āĻāĻžāϰāĻŖ gRPC āύāĻŋāĻā§ āĻĨā§āĻā§āĻ HTTP/2 protocol āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠(āϝāĻž āĻŽāĻžāϞā§āĻāĻŋāĻĒā§āϞā§āĻā§āϏāĻŋāĻ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰā§) āĻāĻŦāĻ JSON āĻāϰ āϰ-āĻā§āĻā§āϏāĻā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠Protocol Buffers āύāĻžāĻŽāĻ āĻŦāĻžāĻāύāĻžāϰāĻŋ āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻā§āĻļāύ āĻĢāϰāĻŽā§āϝāĻžāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻŽā§āϞāϤ āĻŽāĻžāĻāĻā§āϰā§āϏāĻžāϰā§āĻāĻŋāϏ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰ⧠āĻāĻ āϏāĻžāϰā§āĻāĻžāϰ āĻĨā§āĻā§ āĻāϰā§āĻ āϏāĻžāϰā§āĻāĻžāϰ⧠(Server-to-Server) āĻāύā§āĻāĻžāϰāύāĻžāϞ āĻāĻŽāĻŋāĻāύāĻŋāĻā§āĻļāύā§āϰ āĻāύā§āϝ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤
đĻ What is Protocol Buffers (protobuf) and why does gRPC use it?â
Protocol Buffers (āĻŦāĻž Protobuf) āĻšāϞ⧠data āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāύāĻŋāĻāĻŽ āĻŦāĻž āĻĄāĻžāĻāĻž āĻĢāϰāĻŽā§āϝāĻžāĻāĨ¤
- JSON āĻāϰ āĻŽāϤ⧠āĻāϤ⧠āĻŦā§āϰā§āϝāĻžāĻā§āĻ āĻŦāĻž āĻāĻŽāĻžāϰ āĻŽāϤ⧠āĻŽāĻžāύā§āώā§āϰ āĻĒā§āĻžāϰ āĻāĻĒāϝā§āĻā§ āĻā§āϝāĻžāϰā§āĻā§āĻāĻžāϰ āĻĨāĻžāĻā§ āύāĻžāĨ¤ āĻāĻāĻŋ data-āĻā§ āĻāĻŽāĻĒā§āϞā§āϏāĻĄ āĻŦāĻžāĻāύāĻžāϰāĻŋ (0 āĻāĻŦāĻ 1) āĻĢāϰā§āĻŽā§āĻā§ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āĨ¤
- āĻāϰ āĻāĻžāϰāĻŖā§ data-āϰ āϏāĻžāĻāĻ āĻ āύā§āĻ āĻā§āĻ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ āĻāĻŦāĻ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§ āĻĻā§āϰā§āϤ āĻĒāĻžāϰ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ data-āϰ āϏāĻžāĻāĻ āĻā§āĻ āĻšāĻāϝāĻŧāĻžāϝāĻŧ CPU-āĻāϰ āĻĒāĻžāϰā§āϏāĻŋāĻ āϞā§āϝāĻžāĻā§āύā§āϏāĻŋāĻ āĻāĻŽā§ āϝāĻžāϝāĻŧ, āϝāĻž gRPC āĻā§ āĻāϤ āĻĻā§āϰā§āϤ āĻāϰ⧠āϤā§āϞā§āĨ¤
đ What are the four types of gRPC communication?â
gRPC āĻāĻžāϰāĻāĻŋ āĻāĻŋāύā§āύ āϧāϰāĻŖā§āϰ āĻŽā§āϏā§āĻāĻŋāĻ āĻŽā§āĻāĻžāύāĻŋāĻāĻŽ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰā§:
- Unary RPC: āĻāĻāĻŋ āύāϰāĻŽāĻžāϞ API āĻāϰ āĻŽāϤā§āĨ¤ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻāĻāĻāĻŋ āϏāĻŋāĻā§āĻā§āϞ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻĒāĻžāĻ āĻžāϝāĻŧ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻāĻāĻŋ āϏāĻŋāĻā§āĻā§āϞ āϰā§āϏāĻĒāύā§āϏ āĻĻā§āϝāĻŧāĨ¤
- Server Streaming RPC: āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻāĻāĻāĻŋ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻĒāĻžāĻ āĻžāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āϏāĻžāϰā§āĻāĻžāϰ āĻāϤā§āϤāϰā§āϰ āϞāĻŽā§āĻŦāĻž āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻŽ (Stream) āĻŦāĻž āĻĒāϰāĻĒāϰ āĻ āύā§āĻāĻā§āϞ⧠data āĻĒāĻžāĻ āĻžāϤ⧠āĻĨāĻžāĻā§ (āϝā§āĻŽāύ āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ āĻĄāĻžāĻāύāϞā§āĻĄ)āĨ¤
- Client Streaming RPC: āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻāĻāĻāĻŋ data-āϰ āϏā§āĻā§āϰāĻŋāĻŽ āĻŦāĻž āĻĒā§āϰāĻā§āϰ data āĻĒāĻžāĻ āĻžāϤ⧠āĻĨāĻžāĻā§, āĻāϰ āϏāĻžāϰā§āĻāĻžāϰ āϏāĻŦāĻā§āϞ⧠āϰāĻŋāϏāĻŋāĻ āĻāϰ⧠āϏāĻŦāĻļā§āώ⧠āĻāĻāĻāĻŋ āϏāĻŋāĻā§āĻā§āϞ āϰā§āϏāĻĒāύā§āϏ āĻĻā§āϝāĻŧ (āϝā§āĻŽāύ āĻŦāĻĄāĻŧ āĻĢāĻžāĻāϞ āĻāĻĒāϞā§āĻĄ)āĨ¤
- Bidirectional Streaming RPC: āĻā§āϞāĻžāϝāĻŧ ā§āύā§āĻ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ āĻĻā§āĻāύā§āĻ āϏā§āĻŦāĻžāϧā§āύāĻāĻžāĻŦā§ āĻāĻā§ āĻ āĻĒāϰā§āϰ āϏāĻžāĻĨā§ āĻāĻāĻ āϏāĻžāĻĨā§ data āϏā§āĻā§āϰāĻŋāĻŽ āĻāϰāϤ⧠āĻĨāĻžāĻā§, āĻ āύā§āĻāĻāĻž āĻā§āϝāĻžāĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻŽāϤā§āĨ¤
đ¤ When would you choose gRPC over REST?â
- āϝāĻāύ āĻŽāĻžāĻāĻā§āϰā§āϏāĻžāϰā§āĻāĻŋāϏ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰ⧠āĻāύāĻāĻžāϰā§āύāĻžāϞ āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠āĻ āϤā§āϝāύā§āϤ āĻĻā§āϰā§āϤ āϝā§āĻāĻžāϝā§āĻ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āĻāĻžāĻāĻŦā§āύāĨ¤
- āϝāĻāύ āĻĒā§āϰāĻā§āϰ āĻĒāϰāĻŋāĻŽāĻžāύ⧠data (High throughput) āĻāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ āĻāϰāϤ⧠āĻšāĻŦā§ āĻŦāĻž āĻāĻŽ āϞā§āϝāĻžāĻā§āύā§āϏāĻŋ (Low latency) āĻĻāϰāĻāĻžāϰ āĻšāĻŦā§āĨ¤
- āϝā§āĻāĻžāύ⧠āĻā§āϞāĻžā§ā§āύā§āĻ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻāϝāĻŧāĻĻāĻŋāĻ āĻĨā§āĻā§āĻ āϏā§āĻā§āϰāĻŋāĻŽāĻŋāĻ (Streaming) āϏāĻžāĻĒā§āϰā§āĻ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§āĨ¤
- āϤāĻŦā§, āϝāĻĻāĻŋ āĻŦā§āϰāĻžāĻāĻāĻžāϰ āĻŦāĻž āϏāĻžāϧāĻžāϰāĻŖ āĻĒāĻžāĻŦāϞāĻŋāĻ āĻāύā§āĻāĻžāϰāύā§āĻ āĻāĻĒāĻŋāĻāĻ (Public API) āĻŦāĻžāύāĻžāϤ⧠āĻšāϝāĻŧ, āϤāĻŦā§ gRPC āĻāϰ āĻā§āϝāĻŧā§ REST āĻŦāĻž GraphQL āĻāĻžāϞā§, āĻāĻžāϰāĻŖ āĻŦā§āϰāĻžāĻāĻāĻžāϰāĻā§āϞ⧠āĻāĻāύāĻ āύā§āĻāĻŋāĻāĻāĻžāĻŦā§ gRPC āĻāĻžāϞā§āĻāĻžāĻŦā§ āϏāĻžāĻĒā§āϰā§āĻ āĻāϰ⧠āύāĻžāĨ¤